颜色选择器 ColorPicker
颜色选择器提供了一个带 RGB 滑块和预览框的交互式取色面板。它非常适合需要让用户自定义颜色的场景,例如主题配置、材质颜色、画笔颜色等。
函数原型
bool ColorPicker(const HXString &id, ColorPickerProfile &profile);
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
id | const HXString & | 唯一标识符,用于状态持久化。 |
profile | ColorPickerProfile & | 颜色选择器的配置与状态。 |
返回值
| 类型 | 说明 |
|---|---|
bool | true —— 当前帧颜色值发生了变化。false —— 颜色未变化。 |
ColorPickerProfile 结构体
struct ColorPickerProfile {
HXColor Color = {255, 255, 255, 255};
HXPoint Size = {180, 220};
HXColor CursorColor{255, 255, 255, 255};
HXColor PreviewBorderColor{200, 200, 200, 255};
// 内部状态,请勿手动修改
struct {
SliderProfile1f R{};
SliderProfile1f G{};
SliderProfile1f B{};
float r = 255, g = 255, b = 255;
} _internal;
};
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Color | HXColor | {255,255,255,255} | 当前选中的颜色(RGBA)。 |
Size | HXPoint | {180,220} | 选择器的整体尺寸。 |
CursorColor | HXColor | {255,255,255,255} | 滑块光标颜色。 |
PreviewBorderColor | HXColor | {200,200,200,255} | 预览框边框颜色。 |
使用示例
static HX::ColorPickerProfile cp;
HX::ColorPicker(HXStr("mycolor"), cp);
// 使用选中的颜色
HX::Text(HXStr("当前颜色") + HX::ToHXString(cp.Color.R) + L"," + ...);
提示
颜色选择器内部使用了三个 Slider1f 来分别控制 R、G、B 通道。如果你需要更精细的控制(例如加入 Alpha 通道或 HSV 模式),可以自行组合 Slider 实现。
运行效果
截图占位符:请补充 $name 控件的运行效果截图。
截图占位符:请补充
颜色选择器 ColorPicker 运行效果的运行效果截图,保存为./assets/颜色选择器 ColorPicker_view.png。`n